Justification & hyphenation 兩端對齊與連字元斷行

在西方語言排版中,文字對齊(Justification) 和 連字元(Hyphenation) 影響可讀性,也承載著文化歷史。從中世紀德國到文藝復興義大利,再到1990年代,不同風格的排版都能營造特定氛圍。

Justified textlink 兩端對齊文字

左對齊文字與兩端對齊文字,採用 Roboto Flex 字型設定。

在從左向右閱讀的語言中,幾行以上的居中對齊或右對齊文字就會讓人難以忍受,所以通常是在兩端對齊和不對齊(左對齊)之間做選擇。

哪種排版更容易讀?有一些相關的實證研究,但結果並無定論。因為排版實踐涉及到平衡多個變數,字號、字間距、行長等等,而所有這些變數都是相互作用的。艾倫·盧普頓(Ellen Lupton)在她的《文字設計的原理》(Thinking with Type)一書中所說的“排版系統的彈性”。

在需要符合傳統期望的場合,採用兩端對齊是更合理的,而在不受約束的情況下,左對齊也許是更好的選擇。例如,在書籍、報紙和雜誌等出版物中,兩端對齊是一種長期約定俗成的做法。

而左對齊為一種有意不對齊的選擇。比阿特麗斯·沃德(Beatrice Warde)或斯坦利·莫里森(Stanley Morison)這樣認為“優秀的排版應當是隱形的”(即排版不應干擾作者與讀者之間的交流)

Hyphenationlink 連字與斷字

除了用來連線單詞(比如“well-being”),如果想讓文字真正對齊得好,通常都需要用到斷字。連字元可以用來在兩行文字之間拆分單詞。斷字和兩端對齊通常是配套使用的。如果不用斷字,兩端對齊可能會導致單詞間距過大,而如果是左對齊的文字,適當的斷字還能讓右側的參差邊緣(rag)更美觀。

連字元文字與無連字元文字,字型為 Roboto Flex。

斷字並不是隨意在單詞中間插入連字元那麼簡單。如果沒有一套合理的斷字規則,錯誤的斷字可能會導致歧義,使讀者困惑甚至停頓。

換行不當與換行得當的示例

斷字主要的兩個方法:

1 詞源學方法(etymological approach),根據單詞的詞源進行拆分,例如“omni-po-tent”(拉丁詞根“omni”+“potent”)

2 音位學方法(phonetic approach),按照單詞的音節進行拆分,例如“om-nip-o-tent”。儘管詞源學方法在邏輯上更具一致性,但它對讀者的詞彙知識要求較高。

大多數讀者在閱讀時更關注單詞的發音,而非其詞源,因此音位學方法在實際應用中可能更直觀。

Before Printlink 列印前

早在印刷術出現之前,連字和齊行處理就在手抄書中被使用了。到了中世紀晚期,人們對這種參差不齊的容忍度降低了,抄寫員們努力創作出規整的矩形文字塊。

在開始書寫之前,抄寫員會先用尖銳的工具、鉛或墨水在羊皮紙上仔細劃出一個矩形的文字區域。他們在書寫時會進行齊行處理,透過使用連字元、縮寫、字母重疊、使用連字以及對字母寬度做細微調整等方式,使文字與行寬適配。

Handset Typelink 活字排版

畢昇在中國發明瞭活字印刷,比約翰·古騰堡的印刷機早了四個世紀。古騰堡才是將這一技術引入歐洲並加以改進的人。他印刷的第一部重要作品是《四十二行聖經》在排版時,古騰堡參考了當時的手抄書風格,採用了兩端對齊的排版方式,並使用了一種叫做“textura”的字型,這種字型結構緊湊、筆畫有稜角,多用於宗教書籍。在排字時,工人需要從字匣中一個個取出字母,放入手持排字架,並在單詞之間插入金屬空隙。如果最後幾個字母放不下,就換更窄的空隙來騰出空間;如果行尾還有空餘,則透過增加單詞間距來填滿整行。

古登堡 42 行《聖經》中使用的字型。

比如使用縮寫和連字(就是把兩個字母合併成一個,比如“fi”或“fl”)。他還特意鑄造了寬窄不同的字母,以便在排版時更靈活地調整行距(他的活字型檔裡有290多個字元,而標準拉丁字母才40個左右,這說明他額外做了很多不同尺寸的字母來適應排版需求)。此外,他還會把連字元、標點符號,甚至一些特殊字元(像短s)放到版面之外,讓它們“懸掛”在邊距裡,以減少排版中的空白區域。

Linotype 萊諾排版機

在古騰堡時代,排版的方式一直沒有太大變化,直到19世紀末,奧特馬·默根塔勒發明了萊諾排版機。這臺機器是自動鑄排機,不再像傳統排版那樣用單個活字拼排,而是使用字模(也就是字母的黃銅模具),先把一行字模排列好,再一次性鑄造成一整條金屬字塊。

萊諾排版機是19世紀末發明的自動鑄排機,它用字模(字母的黃銅模具)排列成行,再鑄造成整條金屬字塊,相比傳統手工排版快了數倍。它極大簡化了兩端對齊的過程。過去排字工需反覆調整單詞間距,而萊諾排版機能自動插入空隙條,確保整行對齊。

當一行排滿後,操作員推杆送入鑄字機,機器自動調整間距並鑄造字塊。相比手工排版能回看調整上一行,萊諾排版機是逐行自動處理的,修改上一行難度大,除非發現錯誤,否則很少重鑄。

萊諾鑄排機中帶有空鉛的矩陣排版行。

Monotype 蒙納排版機

1887年,蘭斯頓發明了蒙納排版機,由鍵盤和鑄字機兩部分組成。鍵盤打孔紙帶來編碼文字,而鑄字機讀取紙帶,將字元鑄造成單個活字。

由於鍵盤和鑄字機是分開的,無法直接看到行寬,蒙納排版機採用了計數邏輯來確保對齊。每個字元的寬度基於單位系統,如“M”佔18個單位寬度,“a”“o”佔9個單位,“j”“f”佔6個單位。

操作員在鍵盤上打字時,機器會自動計算每個字母的寬度。每按一次空格鍵,機器就會記錄一個空格的位置。快到行尾時,系統會提醒操作員輸入兩個數值:一是這一行用了多少個空格,二是這一行還剩多少空餘空間。

等到鑄字機開始工作時,它會倒序讀取紙帶,先讀到這兩個數值,然後利用特殊的機械結構自動調整單詞之間的空隙,讓整行排版對齊,看起來整齊美觀。

Phototypesetting  照相排版

無論是手工排版還是機械排版,早期印刷都是鉛字塗墨後直接壓印到紙上。但20世紀中期,膠印逐漸取代了這種方式,它先把油墨影象轉移到橡皮布,再印到紙上,印版需要先用攝影膠片曝光處理。起初,印刷仍靠金屬鑄字,再塗墨拍成膠片,但後來照排系統直接生成可印刷的影象,省去了這一過程。

照排機無法自動調整兩端對齊,必須手動計算間距。但隨著技術進步,計算機逐步接管了這一任務,讓排版更高效

TeX

電腦科學家克努斯在為自己的書《計算機程式設計藝術》排版時,發現新型照排機的效果不理想,於是決定用電腦科學的方法重新定義排版,並開發了TeX。

他提出,排版的核心問題是換行,而不是對齊。傳統印刷依靠人工調整單詞間距來對齊文字,但計算機可以自動調整間距,所以如何合理換行才是關鍵。

TeX的三大核心概念:

盒子(box):字元、單詞或數學公式,最重要的屬性是寬度。
粘連(glue):單詞或字元之間的空隙,可以拉伸或收縮來調整排版。
懲罰值(penalty):衡量某個位置換行的美觀程度,影響最終排版效果。
與傳統系統逐行排版不同,TeX會全域性分析整個段落,找到最佳的換行方案,讓文字更均勻、美觀。

hz-program

hz-program 是赫爾曼·察普夫與 URW 共同開發的排版最佳化軟體,借鑑了古騰堡《四十二行聖經》的排版技巧。察普夫發現,古騰堡利用不同寬度的字元,結合連字和縮寫,讓排版更加緊湊均衡。雖然現代排版不再依賴這些手法,但其中一些對齊技巧仍然適用於今天的數字排版。

hz-program 包含多個模組,其中:

kf:可動態調整字距,最佳化行首和行尾字元的邊距,使排版更整齊。
εk:可調整字元寬度,但不會影響美觀(擴充套件需謹慎,壓縮應適量)。
jp:類似 TeX 的智慧換行引擎,可與其他模組配合,最佳化文字對齊效果。

Adobe InDesign 智慧最佳化排版

Adobe InDesign 採用 Adobe Paragraph Composer,類似 TeX,能整體最佳化段落換行和對齊,並支援 微排版功能(字距調整、字形縮放、光學邊距等)。

字形縮放 備受爭議。Torbjørn Eng 認為,Adobe 試圖將其與古騰堡的黑字排版聯絡,但兩者並不相同。此外,他批評 InDesign 的縮放方式會改變字元筆畫的粗細,不如 hz-program 精準。

不過,Robert Bringhurst 認為,適當調整字元間距和內部空間可以提升排版美觀度。InDesign 的對齊演算法可調整字元間距 ±3%,但這是否最佳化了排版效果,仍有不同觀點。

Justification today, with variable fonts 可變字型如何最佳化網頁對齊

Bram Stein 在 Robothon 2018 上展示瞭如何用可變字型最佳化網頁排版,讓其接近 InDesign 的對齊效果。

比如,搭配黑字可變字型Bradley DJR,可以在網頁上覆現傳統印刷的美感,同時保持 CSS 的排版靈活性。

由 DJR 設計的可變字型布拉德利(Bradley)的可變寬度對齊演示。

可變字型還支援細微調整,如 GRAD 軸能調整筆畫粗細但不改變字元寬度,保證對齊和斷字規則不變,避免段落重新排版。